// 在文件顶部添加jwt模块导入
const jwt = require('jsonwebtoken');
// 验证JWT
exports.verifyToken = (req, res, next) => {
  const token = req.headers.authorization?.split(' ')[1];
  if (!token)
    return res.status(401).json({
      status: 0,
      code: 'AUTH_001',
      msg: '未提供访问令牌',
    });

  jwt.verify(token, process.env.JWT_SECRET , (err, decoded) => {
    // 推荐使用环境变量
    if (err) {
      const message =
        err.name === 'TokenExpiredError'
          ? '令牌已过期，请重新登录'
          : '无效的安全凭证';
      return res.status(403).json({
        status: 0,
        code: 'AUTH_002',
        msg: message,
      });
    }
    req.user = decoded;
    next();
  });
};

// 检查角色权限
exports.checkRole = (allowedRoles) => {
  return (req, res, next) => {
    if (!allowedRoles.includes(req.user.type)) {
      return res.status(403).json({
        status: 0,
        msg: `需要${allowedRoles.join('或')}权限`,
      });
    }
    next();
  };
};
